using ET;
using Marx;
using ProtoBuf;
using System.Collections.Generic;
namespace ET
{
//------------------------------------------
//Login
//------------------------------------------
	[ResponseType(nameof(LoginResponse))]
	[Message(ClientOpcode.LoginRequest)]
	[ProtoContract]
	public partial class LoginRequest: Object, IRequest
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(1)]
		public string Account { get; set; }

		[ProtoMember(2)]
		public string Password { get; set; }

		[ProtoMember(3)]
		public int Zone { get; set; }

	}

	[Message(ClientOpcode.LoginResponse)]
	[ProtoContract]
	public partial class LoginResponse: Object, IResponse
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(91)]
		public int Error { get; set; }

		[ProtoMember(92)]
		public string Message { get; set; }

		[ProtoMember(1)]
		public int GateId { get; set; }

		[ProtoMember(2)]
		public string Address { get; set; }

		[ProtoMember(3)]
		public long Token { get; set; }

		[ProtoMember(4)]
		public List<long> Players = new List<long>();

	}

	[ResponseType(nameof(LoginGateResponse))]
	[Message(ClientOpcode.LoginGateRequest)]
	[ProtoContract]
	public partial class LoginGateRequest: Object, IRequest
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(1)]
		public int GateId { get; set; }

		[ProtoMember(2)]
		public long Token { get; set; }

		[ProtoMember(3)]
		public string Account { get; set; }

		[ProtoMember(4)]
		public long PlayerId { get; set; }

	}

	[Message(ClientOpcode.LoginGateResponse)]
	[ProtoContract]
	public partial class LoginGateResponse: Object, IResponse
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(91)]
		public int Error { get; set; }

		[ProtoMember(92)]
		public string Message { get; set; }

		[ProtoMember(1)]
		public long PlayerId { get; set; }

	}

//------------------------------------------------
// Legion Logic
//------------------------------------------------
	[Message(ClientOpcode.EnterGameAllInfoNotify)]
	[ProtoContract]
	public partial class EnterGameAllInfoNotify: Object, IClientNotify
	{
		[ProtoMember(1)]
		public PlayerAllInfoProto PlayerAllInfo { get; set; }

		[ProtoMember(2)]
		public int ServerId { get; set; }

		[ProtoMember(3)]
		public int TimezoneOffset { get; set; }

		[ProtoMember(4)]
		public long UtcTimestamp { get; set; }

		[ProtoMember(5)]
		public long PlayerId { get; set; }

	}

	[Message(ClientOpcode.ItemChangeNotify)]
	[ProtoContract]
	public partial class ItemChangeNotify: Object, IClientNotify
	{
		[ProtoMember(1)]
		public List<ItemChangeProto> Changes = new List<ItemChangeProto>();

	}

//------------------------------------------------------------
//Alert
//------------------------------------------------------------
	[ResponseType(nameof(ReplyAlertMessageResponse))]
	[Message(ClientOpcode.ReplyAlertMessageRequest)]
	[ProtoContract]
	public partial class ReplyAlertMessageRequest: Object, IClientRequest
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(1)]
		public long AlertId { get; set; }

		[ProtoMember(2)]
		public bool Agree { get; set; }

	}

	[Message(ClientOpcode.ReplyAlertMessageResponse)]
	[ProtoContract]
	public partial class ReplyAlertMessageResponse: Object, IClientResponse
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(91)]
		public int Error { get; set; }

		[ProtoMember(92)]
		public string Message { get; set; }

	}

	[Message(ClientOpcode.AlertMessageNotify)]
	[ProtoContract]
	public partial class AlertMessageNotify: Object, IClientNotify
	{
		[ProtoMember(1)]
		public long AlertId { get; set; }

		[ProtoMember(2)]
		public int Type { get; set; }

		[ProtoMember(3)]
		public string Message { get; set; }

		[ProtoMember(4)]
		public long ExpireTime { get; set; }

		[ProtoMember(5)]
		public PlayerSnapProto From { get; set; }

	}

//---------------------------------------------------------
//Options
//---------------------------------------------------------
	[ResponseType(nameof(SetOptionResponse))]
	[Message(ClientOpcode.SetOptionRequest)]
	[ProtoContract]
	public partial class SetOptionRequest: Object, IClientRequest
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(1)]
		public string Key { get; set; }

		[ProtoMember(2)]
		public string Value { get; set; }

	}

	[Message(ClientOpcode.SetOptionResponse)]
	[ProtoContract]
	public partial class SetOptionResponse: Object, IClientResponse
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(91)]
		public int Error { get; set; }

		[ProtoMember(92)]
		public string Message { get; set; }

	}

	[ResponseType(nameof(SetOptionBatchResponse))]
	[Message(ClientOpcode.SetOptionBatchRequest)]
	[ProtoContract]
	public partial class SetOptionBatchRequest: Object, IClientRequest
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(1)]
		public List<OptionItemProto> Items = new List<OptionItemProto>();

	}

	[Message(ClientOpcode.SetOptionBatchResponse)]
	[ProtoContract]
	public partial class SetOptionBatchResponse: Object, IClientResponse
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(91)]
		public int Error { get; set; }

		[ProtoMember(92)]
		public string Message { get; set; }

		[ProtoMember(1)]
		public PlayerOptionProto Option { get; set; }

	}

	[ResponseType(nameof(RemoveOptionResponse))]
	[Message(ClientOpcode.RemoveOptionRequest)]
	[ProtoContract]
	public partial class RemoveOptionRequest: Object, IClientRequest
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(1)]
		public string Key { get; set; }

	}

	[Message(ClientOpcode.RemoveOptionResponse)]
	[ProtoContract]
	public partial class RemoveOptionResponse: Object, IClientResponse
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(91)]
		public int Error { get; set; }

		[ProtoMember(92)]
		public string Message { get; set; }

	}

	[ResponseType(nameof(RemoveOptionBatchResponse))]
	[Message(ClientOpcode.RemoveOptionBatchRequest)]
	[ProtoContract]
	public partial class RemoveOptionBatchRequest: Object, IClientRequest
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(1)]
		public List<string> Keys = new List<string>();

	}

	[Message(ClientOpcode.RemoveOptionBatchResponse)]
	[ProtoContract]
	public partial class RemoveOptionBatchResponse: Object, IClientResponse
	{
		[ProtoMember(90)]
		public int RpcId { get; set; }

		[ProtoMember(91)]
		public int Error { get; set; }

		[ProtoMember(92)]
		public string Message { get; set; }

		[ProtoMember(1)]
		public PlayerOptionProto Option { get; set; }

	}

}
